package ctx

import (
	"framework/gsql"
	"framework/httpz/response"
	"time"

	"github.com/kataras/iris/v12"
)

func DbList(ctx iris.Context) {

	// type User struct {
	// 	ID   int
	// 	Name string
	// 	Age  int
	// }

	// gsql.QueryUserPrePare()

	response.Sucess(ctx, iris.Map{
		"unix_time": time.Now().Format(time.RFC3339),
	})
}

func DbAdd(ctx iris.Context) {

	// 连接到数据库
	// db, _ := gsql.Connect(&gsql.Options{
	// 	Driver:   gsql.MYSQL,
	// 	Addr:     "@tcp(127.0.0.1:3306)",
	// 	Username: "root",
	// 	Password: "123000",
	// 	Database: "sk_torch",
	// 	Params:   "charset=utf8mb4&parseTime=True&loc=Local",
	// 	// Cluster: &gsql.Cluster{
	// 	// 	Nodes: []string{
	// 	// 		"127.0.0.1:3306",
	// 	// 		"127..0.0.1:3306",
	// 	// 	},
	// 	// }
	// })
	// defer db.Close()

	// var user = []struct {
	// 	ID     int
	// 	Name   string
	// 	Gender int
	// }{}

	// var table = "g_users"

	// 创建Sql语句
	// sql, _ := gsql.NewQuery().
	// 	Table("c_user").
	// 	Select().
	// 	ToSql()

	// fmt.Printf("sql: %+v\n", sql)

	// 处理并执行SQL
	// db.QueryOne(sql).Scan(&user)

	// total := db.Table(table).Select("name", "id").Where("ab = ", 1).Count()
	// db.Table(table).Select("name", "id").Where("ab = ", 1).Offset(1).Limit(10).Rows(&user)

	// fmt.Printf(">> 共查询到 %d 条数据\n", total)

	// db.Begin(func(tx) {
	// 	// 处理事务

	// })

	// Insert语句
	// gsq.Newasdf().Table("asdf").Insert(&sdf)

	// // 创建查询语句
	// sql := gsql.NewBuilder().Table().Select()

	// // 执行处理
	// db.Query(sql).Scan()

	// 返回结果

	response.Sucess(ctx, iris.Map{
		"unix_time": time.Now().Format(time.RFC3339),
	})
}

func DbSql(ctx iris.Context) {

	// func getUsersWithStatus(db *sql.DB) ([]UserStatus, error) {
	//     query := squirrel.Select(
	//             "id",
	//             "name",
	//             squirrel.Case().
	//                 When(squirrel.Gt{"login_count": 100}, "'power'").
	//                 When(squirrel.Gt{"login_count": 50}, "'active'").
	//                 Else("'normal'").As("status"),
	//         ).
	//         From("users").
	//         PlaceholderFormat(squirrel.Dollar)

	//     sql, args, err := query.ToSql()
	//     // ...执行查询
	// }

	query := gsql.NewQuery().
		Select("u.id", "u.name").
		Select("gender").
		Select("COALESCE(u.domain,d.domain) AS domain").
		From("g_user u")
	// Join("job b on b.id=u.id").
	// Where(
	// 	gsql.Eq{"type": 1},
	// 	gsql.Eq{"gender": 1},
	// 	gsql.In{"a": []string{"12", "11"}},
	// )

	query.ToSql()

	response.Sucess(ctx, iris.Map{
		"unix_time": time.Now().Format(time.RFC3339),
	})
}
